Distributed systems are highly-available, scalable systems that are utilized in various situations, including those situations that require a high-throughput of work or continuous or nearly continuous availability of the system.
Typically, users of a distributed system desire access to data residing in a global repository of the system. These users may be executing complex client applications having multiple threads of processes. In order to prevent corruption of the data, techniques are needed to manage access to the data by the client applications and, in particular, by the multiple threads of the client applications.
Typically, this access management includes obtaining locks (either shared or exclusive) on requested resources of the repository. In particular, a thread of an application that wishes to access one or more resources of the repository obtains locks of those requested resources. These locks are specifically identified and attached with the requesting thread. Thus, it is necessary to tap into understand the threading model of the operating system. This creates complications and makes the locking facilities platform dependent.
Based on the foregoing, a need still exists for a capability that facilitates efficient access to data stored in data repositories.